package com.utils;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.HashMap;

import javax.servlet.http.HttpServletRequest;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class CreateQrCode {
	public static void createCode(String contextPath,String uuid) {
        int WIDTH = 300;
        int GEIGHT = 300;
        String FORMAT = "png";
        System.out.println(" contextPath  "+contextPath);
        String content = contextPath + "/railway/qrcode/getQrcodeInfo?uuid="+uuid;
        //定义二维码的参数
        HashMap map = new HashMap();
        //设置编码
        map.put(EncodeHintType.CHARACTER_SET, "utf-8");
        //设置纠错等级
        map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        map.put(EncodeHintType.MARGIN, 2);
        try {
            //生成二维码
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, WIDTH, GEIGHT);
            String pathString = "";//request.getSession().getServletContext().getRealPath("ewm");
            File file = new File(pathString);
            if(!file.exists()) {
            	file.mkdirs();
            }
            
            //file1 这个是 生成图片的路径
            Path file1 = new File(pathString + File.separator + uuid + FORMAT).toPath();
            MatrixToImageWriter.writeToPath(bitMatrix, FORMAT, file1);
        } catch (WriterException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


/*File contextPathFile = new File(contextPath);
if (contextPathFile!=null) {
    String parentPath = contextPathFile.getParent();
    System.out.println("rentPath "+parentPath);
}

int indexOf = pathString.indexOf(contextPath);

String substring = pathString.substring(0,indexOf);

System.out.println("substiring = "+substring);*/
